package generatedtest;

import java.io.InputStream;
import java.io.Reader;
import java.io.Writer;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import org.json.CDL;
import org.json.Cookie;
import org.json.CookieList;
import org.json.HTTP;
import org.json.HTTPTokener;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONML;
import org.json.JSONObject;
import org.json.JSONPointer;
import org.json.JSONString;
import org.json.JSONStringer;
import org.json.JSONTokener;
import org.json.JSONWriter;
import org.json.Property;
import org.json.XML;
import org.json.XMLParserConfiguration;
import org.json.XMLTokener;
import org.json.XMLXsiTypeConverter;

// Test case generated by GenerateFlowTestCase.ql
public class Test {

	Object getArrayElement(Object[] container) { return container[0]; }
	Object getElement(Collection container) { return container.iterator().next(); }
	Object getElement(Iterator it) { return it.next(); }
	Object getMapKey(Map container) { return container.keySet().iterator().next(); }
	Object getMapValue(Map container) { return container.get(null); }
	Object[] newWithArrayElement(Object element) { return new Object[] { element }; }
	List newWithElement(Object element) { return List.of(element); }
	Map newWithMapKey(Object element) { return Map.of(element, null); }
	Map newWithMapValue(Object element) { return Map.of(null, element); }
	Object source() { return null; }
	void sink(Object o) { }

	public void test() {

		{
			// "org.json;CDL;false;rowToJSONArray;;;Argument[0];ReturnValue;taint;manual"
			JSONArray out = null;
			JSONTokener in = (JSONTokener)source();
			out = CDL.rowToJSONArray(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;CDL;false;rowToJSONObject;;;Argument[0..1];ReturnValue;taint;manual"
			JSONObject out = null;
			JSONTokener in = (JSONTokener)source();
			out = CDL.rowToJSONObject(null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;CDL;false;rowToJSONObject;;;Argument[0..1];ReturnValue;taint;manual"
			JSONObject out = null;
			JSONArray in = (JSONArray)source();
			out = CDL.rowToJSONObject(in, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;CDL;false;rowToString;;;Argument[0];ReturnValue;taint;manual"
			String out = null;
			JSONArray in = (JSONArray)source();
			out = CDL.rowToString(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;CDL;false;toJSONArray;;;Argument[0..1];ReturnValue;taint;manual"
			JSONArray out = null;
			String in = (String)source();
			out = CDL.toJSONArray(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;CDL;false;toJSONArray;;;Argument[0..1];ReturnValue;taint;manual"
			JSONArray out = null;
			String in = (String)source();
			out = CDL.toJSONArray((JSONArray)null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;CDL;false;toJSONArray;;;Argument[0..1];ReturnValue;taint;manual"
			JSONArray out = null;
			JSONTokener in = (JSONTokener)source();
			out = CDL.toJSONArray(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;CDL;false;toJSONArray;;;Argument[0..1];ReturnValue;taint;manual"
			JSONArray out = null;
			JSONTokener in = (JSONTokener)source();
			out = CDL.toJSONArray((JSONArray)null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;CDL;false;toJSONArray;;;Argument[0..1];ReturnValue;taint;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = CDL.toJSONArray(in, (String)null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;CDL;false;toJSONArray;;;Argument[0..1];ReturnValue;taint;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = CDL.toJSONArray(in, (JSONTokener)null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;CDL;false;toString;;;Argument[0..1];ReturnValue;taint;manual"
			String out = null;
			JSONArray in = (JSONArray)source();
			out = CDL.toString(null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;CDL;false;toString;;;Argument[0..1];ReturnValue;taint;manual"
			String out = null;
			JSONArray in = (JSONArray)source();
			out = CDL.toString(in, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;CDL;false;toString;;;Argument[0..1];ReturnValue;taint;manual"
			String out = null;
			JSONArray in = (JSONArray)source();
			out = CDL.toString(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;Cookie;false;escape;;;Argument[0];ReturnValue;taint;manual"
			String out = null;
			String in = (String)source();
			out = Cookie.escape(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;Cookie;false;toJSONObject;;;Argument[0];ReturnValue;taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out = Cookie.toJSONObject(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;Cookie;false;toString;;;Argument[0];ReturnValue;taint;manual"
			String out = null;
			JSONObject in = (JSONObject)source();
			out = Cookie.toString(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;Cookie;false;unescape;;;Argument[0];ReturnValue;taint;manual"
			String out = null;
			String in = (String)source();
			out = Cookie.unescape(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;CookieList;false;toJSONObject;;;Argument[0];ReturnValue;taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out = CookieList.toJSONObject(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;CookieList;false;toString;;;Argument[0];ReturnValue;taint;manual"
			String out = null;
			JSONObject in = (JSONObject)source();
			out = CookieList.toString(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;HTTP;false;toJSONObject;;;Argument[0];ReturnValue;taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out = HTTP.toJSONObject(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;HTTP;false;toString;;;Argument[0];ReturnValue;taint;manual"
			String out = null;
			JSONObject in = (JSONObject)source();
			out = HTTP.toString(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;HTTPTokener;false;HTTPTokener;;;Argument[0];Argument[this];taint;manual"
			HTTPTokener out = null;
			String in = (String)source();
			out = new HTTPTokener(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;HTTPTokener;false;nextToken;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			HTTPTokener in = (HTTPTokener)source();
			out = in.nextToken();
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;JSONArray;(Collection);;Element of Argument[0];Argument[this];taint;manual"
			JSONArray out = null;
			Collection in = (Collection)newWithElement(source());
			out = new JSONArray(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;JSONArray;(Iterable);;Element of Argument[0];Argument[this];taint;manual"
			JSONArray out = null;
			Iterable in = (Iterable)newWithElement(source());
			out = new JSONArray(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;JSONArray;(JSONArray);;Argument[0];Argument[this];taint;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = new JSONArray(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;JSONArray;(JSONTokener);;Argument[0];Argument[this];taint;manual"
			JSONArray out = null;
			JSONTokener in = (JSONTokener)source();
			out = new JSONArray(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;JSONArray;(Object);;ArrayElement of Argument[0];Argument[this];taint;manual"
			JSONArray out = null;
			Object in = (Object)newWithArrayElement(source());
			out = new JSONArray(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;JSONArray;(String);;Argument[0];Argument[this];taint;manual"
			JSONArray out = null;
			String in = (String)source();
			out = new JSONArray(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;get;;;Argument[this];ReturnValue;taint;manual"
			Object out = null;
			JSONArray in = (JSONArray)source();
			out = in.get(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;getBigDecimal;;;Argument[this];ReturnValue;taint;manual"
			BigDecimal out = null;
			JSONArray in = (JSONArray)source();
			out = in.getBigDecimal(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;getBigInteger;;;Argument[this];ReturnValue;taint;manual"
			BigInteger out = null;
			JSONArray in = (JSONArray)source();
			out = in.getBigInteger(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;getBoolean;;;Argument[this];ReturnValue;taint;manual"
			boolean out = false;
			JSONArray in = (JSONArray)source();
			out = in.getBoolean(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;getDouble;;;Argument[this];ReturnValue;taint;manual"
			double out = 0.0;
			JSONArray in = (JSONArray)source();
			out = in.getDouble(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;getEnum;;;Argument[this];ReturnValue;taint;manual"
			Enum out = null;
			JSONArray in = (JSONArray)source();
			out = in.getEnum(null, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;getFloat;;;Argument[this];ReturnValue;taint;manual"
			float out = 0.0f;
			JSONArray in = (JSONArray)source();
			out = in.getFloat(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;getInt;;;Argument[this];ReturnValue;taint;manual"
			int out = 0;
			JSONArray in = (JSONArray)source();
			out = in.getInt(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;getJSONArray;;;Argument[this];ReturnValue;taint;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.getJSONArray(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;getJSONObject;;;Argument[this];ReturnValue;taint;manual"
			JSONObject out = null;
			JSONArray in = (JSONArray)source();
			out = in.getJSONObject(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;getLong;;;Argument[this];ReturnValue;taint;manual"
			long out = 0L;
			JSONArray in = (JSONArray)source();
			out = in.getLong(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;getNumber;;;Argument[this];ReturnValue;taint;manual"
			Number out = null;
			JSONArray in = (JSONArray)source();
			out = in.getNumber(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;getString;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			JSONArray in = (JSONArray)source();
			out = in.getString(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;iterator;;;Argument[this];Element of ReturnValue;taint;manual"
			Iterator out = null;
			JSONArray in = (JSONArray)source();
			out = in.iterator();
			sink(getElement(out)); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;join;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			JSONArray in = (JSONArray)source();
			out = in.join(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;join;;;Argument[0];ReturnValue;taint;manual"
			String out = null;
			String in = (String)source();
			JSONArray instance = null;
			out = instance.join(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;opt;;;Argument[this];ReturnValue;taint;manual"
			Object out = null;
			JSONArray in = (JSONArray)source();
			out = in.opt(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optBigDecimal;;;Argument[this];ReturnValue;taint;manual"
			BigDecimal out = null;
			JSONArray in = (JSONArray)source();
			out = in.optBigDecimal(0, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optBigDecimal;;;Argument[1];ReturnValue;value;manual"
			BigDecimal out = null;
			BigDecimal in = (BigDecimal)source();
			JSONArray instance = null;
			out = instance.optBigDecimal(0, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;optBigInteger;;;Argument[this];ReturnValue;taint;manual"
			BigInteger out = null;
			JSONArray in = (JSONArray)source();
			out = in.optBigInteger(0, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optBigInteger;;;Argument[1];ReturnValue;value;manual"
			BigInteger out = null;
			BigInteger in = (BigInteger)source();
			JSONArray instance = null;
			out = instance.optBigInteger(0, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;optBoolean;;;Argument[this];ReturnValue;taint;manual"
			boolean out = false;
			JSONArray in = (JSONArray)source();
			out = in.optBoolean(0, false);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optBoolean;;;Argument[this];ReturnValue;taint;manual"
			boolean out = false;
			JSONArray in = (JSONArray)source();
			out = in.optBoolean(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optBoolean;;;Argument[1];ReturnValue;value;manual"
			boolean out = false;
			boolean in = (boolean)source();
			JSONArray instance = null;
			out = instance.optBoolean(0, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;optDouble;;;Argument[this];ReturnValue;taint;manual"
			double out = 0.0;
			JSONArray in = (JSONArray)source();
			out = in.optDouble(0, 0.0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optDouble;;;Argument[this];ReturnValue;taint;manual"
			double out = 0.0;
			JSONArray in = (JSONArray)source();
			out = in.optDouble(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optDouble;;;Argument[1];ReturnValue;value;manual"
			double out = 0.0;
			double in = (double)source();
			JSONArray instance = null;
			out = instance.optDouble(0, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;optEnum;;;Argument[this];ReturnValue;taint;manual"
			Enum out = null;
			JSONArray in = (JSONArray)source();
			out = in.optEnum(null, 0, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optEnum;;;Argument[this];ReturnValue;taint;manual"
			Enum out = null;
			JSONArray in = (JSONArray)source();
			out = in.optEnum(null, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optEnum;;;Argument[2];ReturnValue;value;manual"
			Enum out = null;
			Enum in = (Enum)source();
			JSONArray instance = null;
			out = instance.optEnum(null, 0, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;optFloat;;;Argument[this];ReturnValue;taint;manual"
			float out = 0.0f;
			JSONArray in = (JSONArray)source();
			out = in.optFloat(0, 0.0f);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optFloat;;;Argument[this];ReturnValue;taint;manual"
			float out = 0.0f;
			JSONArray in = (JSONArray)source();
			out = in.optFloat(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optFloat;;;Argument[1];ReturnValue;value;manual"
			float out = 0.0f;
			float in = (float)source();
			JSONArray instance = null;
			out = instance.optFloat(0, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;optInt;;;Argument[this];ReturnValue;taint;manual"
			int out = 0;
			JSONArray in = (JSONArray)source();
			out = in.optInt(0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optInt;;;Argument[this];ReturnValue;taint;manual"
			int out = 0;
			JSONArray in = (JSONArray)source();
			out = in.optInt(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optInt;;;Argument[1];ReturnValue;value;manual"
			int out = 0;
			int in = (int)source();
			JSONArray instance = null;
			out = instance.optInt(0, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;optJSONArray;;;Argument[this];ReturnValue;taint;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.optJSONArray(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optJSONObject;;;Argument[this];ReturnValue;taint;manual"
			JSONObject out = null;
			JSONArray in = (JSONArray)source();
			out = in.optJSONObject(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optLong;;;Argument[this];ReturnValue;taint;manual"
			long out = 0L;
			JSONArray in = (JSONArray)source();
			out = in.optLong(0, 0L);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optLong;;;Argument[this];ReturnValue;taint;manual"
			long out = 0L;
			JSONArray in = (JSONArray)source();
			out = in.optLong(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optLong;;;Argument[1];ReturnValue;value;manual"
			long out = 0L;
			long in = (long)source();
			JSONArray instance = null;
			out = instance.optLong(0, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;optNumber;;;Argument[this];ReturnValue;taint;manual"
			Number out = null;
			JSONArray in = (JSONArray)source();
			out = in.optNumber(0, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optNumber;;;Argument[this];ReturnValue;taint;manual"
			Number out = null;
			JSONArray in = (JSONArray)source();
			out = in.optNumber(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optNumber;;;Argument[1];ReturnValue;value;manual"
			Number out = null;
			Number in = (Number)source();
			JSONArray instance = null;
			out = instance.optNumber(0, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;optQuery;;;Argument[this];ReturnValue;taint;manual"
			Object out = null;
			JSONArray in = (JSONArray)source();
			out = in.optQuery((String)null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optQuery;;;Argument[this];ReturnValue;taint;manual"
			Object out = null;
			JSONArray in = (JSONArray)source();
			out = in.optQuery((JSONPointer)null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optString;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			JSONArray in = (JSONArray)source();
			out = in.optString(0, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optString;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			JSONArray in = (JSONArray)source();
			out = in.optString(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;optString;;;Argument[1];ReturnValue;value;manual"
			String out = null;
			String in = (String)source();
			JSONArray instance = null;
			out = instance.optString(0, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;put;(Collection);;Element of Argument[0];Argument[this];taint;manual"
			JSONArray out = null;
			Collection in = (Collection)newWithElement(source());
			out.put(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;put;(Map);;MapKey of Argument[0];Argument[this];taint;manual"
			JSONArray out = null;
			Map in = (Map)newWithMapKey(source());
			out.put(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;put;(Map);;MapValue of Argument[0];Argument[this];taint;manual"
			JSONArray out = null;
			Map in = (Map)newWithMapValue(source());
			out.put(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;put;(Object);;Argument[0];Argument[this];taint;manual"
			JSONArray out = null;
			Object in = (Object)source();
			out.put(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;put;(boolean);;Argument[0];Argument[this];taint;manual"
			JSONArray out = null;
			boolean in = (boolean)source();
			out.put(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;put;(double);;Argument[0];Argument[this];taint;manual"
			JSONArray out = null;
			double in = (double)source();
			out.put(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;put;(float);;Argument[0];Argument[this];taint;manual"
			JSONArray out = null;
			float in = (float)source();
			out.put(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;put;(int);;Argument[0];Argument[this];taint;manual"
			JSONArray out = null;
			int in = (int)source();
			out.put(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;put;(int,Collection);;Element of Argument[1];Argument[this];taint;manual"
			JSONArray out = null;
			Collection in = (Collection)newWithElement(source());
			out.put(0, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;put;(int,Map);;MapKey of Argument[1];Argument[this];taint;manual"
			JSONArray out = null;
			Map in = (Map)newWithMapKey(source());
			out.put(0, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;put;(int,Map);;MapValue of Argument[1];Argument[this];taint;manual"
			JSONArray out = null;
			Map in = (Map)newWithMapValue(source());
			out.put(0, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;put;(int,Object);;Argument[1];Argument[this];taint;manual"
			JSONArray out = null;
			Object in = (Object)source();
			out.put(0, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;put;(int,boolean);;Argument[1];Argument[this];taint;manual"
			JSONArray out = null;
			boolean in = (boolean)source();
			out.put(0, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;put;(int,double);;Argument[1];Argument[this];taint;manual"
			JSONArray out = null;
			double in = (double)source();
			out.put(0, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;put;(int,float);;Argument[1];Argument[this];taint;manual"
			JSONArray out = null;
			float in = (float)source();
			out.put(0, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;put;(int,int);;Argument[1];Argument[this];taint;manual"
			JSONArray out = null;
			int in = (int)source();
			out.put(0, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;put;(int,long);;Argument[1];Argument[this];taint;manual"
			JSONArray out = null;
			long in = (long)source();
			out.put(0, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;put;(long);;Argument[0];Argument[this];taint;manual"
			JSONArray out = null;
			long in = (long)source();
			out.put(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.put(false);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.put(0L);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.put(0.0f);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.put(0.0);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.put(0, false);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.put(0, 0L);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.put(0, 0.0f);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.put(0, 0.0);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.put(0, 0);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.put(0, (Object)null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.put(0, (Map)null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.put(0, (Collection)null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.put(0);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.put((Object)null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.put((Map)null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.put((Collection)null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;putAll;(Collection);;Element of Argument[0];Argument[this];taint;manual"
			JSONArray out = null;
			Collection in = (Collection)newWithElement(source());
			out.putAll(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;putAll;(Iterable);;Element of Argument[0];Argument[this];taint;manual"
			JSONArray out = null;
			Iterable in = (Iterable)newWithElement(source());
			out.putAll(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;putAll;(JSONArray);;Argument[0];Argument[this];taint;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out.putAll(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;putAll;(Object);;Argument[0];Argument[this];taint;manual"
			JSONArray out = null;
			Object in = (Object)source();
			out.putAll(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;putAll;;;Argument[this];ReturnValue;value;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.putAll((Object)null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;putAll;;;Argument[this];ReturnValue;value;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.putAll((JSONArray)null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;putAll;;;Argument[this];ReturnValue;value;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.putAll((Iterable)null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;putAll;;;Argument[this];ReturnValue;value;manual"
			JSONArray out = null;
			JSONArray in = (JSONArray)source();
			out = in.putAll((Collection)null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;query;;;Argument[this];ReturnValue;taint;manual"
			Object out = null;
			JSONArray in = (JSONArray)source();
			out = in.query((String)null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;query;;;Argument[this];ReturnValue;taint;manual"
			Object out = null;
			JSONArray in = (JSONArray)source();
			out = in.query((JSONPointer)null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;remove;;;Argument[this];ReturnValue;taint;manual"
			Object out = null;
			JSONArray in = (JSONArray)source();
			out = in.remove(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;toJSONObject;;;Argument[this];ReturnValue;taint;manual"
			JSONObject out = null;
			JSONArray in = (JSONArray)source();
			out = in.toJSONObject(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;toJSONObject;;;Argument[0];ReturnValue;taint;manual"
			JSONObject out = null;
			JSONArray in = (JSONArray)source();
			JSONArray instance = null;
			out = instance.toJSONObject(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;toString;;;Argument[0];ReturnValue;taint;manual"
			String out = null;
			int in = (int)source();
			JSONArray instance = null;
			out = instance.toString(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;write;;;Argument[this];Argument[0];taint;manual"
			Writer out = null;
			JSONArray in = (JSONArray)source();
			in.write(out, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;write;;;Argument[this];Argument[0];taint;manual"
			Writer out = null;
			JSONArray in = (JSONArray)source();
			in.write(out);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONArray;false;write;;;Argument[0];ReturnValue;value;manual"
			Writer out = null;
			Writer in = (Writer)source();
			JSONArray instance = null;
			out = instance.write(in, 0, 0);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONArray;false;write;;;Argument[0];ReturnValue;value;manual"
			Writer out = null;
			Writer in = (Writer)source();
			JSONArray instance = null;
			out = instance.write(in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONML;false;toJSONArray;;;Argument[0];ReturnValue;taint;manual"
			JSONArray out = null;
			XMLTokener in = (XMLTokener)source();
			out = JSONML.toJSONArray(in, false);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONML;false;toJSONArray;;;Argument[0];ReturnValue;taint;manual"
			JSONArray out = null;
			XMLTokener in = (XMLTokener)source();
			out = JSONML.toJSONArray(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONML;false;toJSONArray;;;Argument[0];ReturnValue;taint;manual"
			JSONArray out = null;
			String in = (String)source();
			out = JSONML.toJSONArray(in, false);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONML;false;toJSONArray;;;Argument[0];ReturnValue;taint;manual"
			JSONArray out = null;
			String in = (String)source();
			out = JSONML.toJSONArray(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONML;false;toJSONObject;;;Argument[0];ReturnValue;taint;manual"
			JSONObject out = null;
			XMLTokener in = (XMLTokener)source();
			out = JSONML.toJSONObject(in, false);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONML;false;toJSONObject;;;Argument[0];ReturnValue;taint;manual"
			JSONObject out = null;
			XMLTokener in = (XMLTokener)source();
			out = JSONML.toJSONObject(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONML;false;toJSONObject;;;Argument[0];ReturnValue;taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out = JSONML.toJSONObject(in, false);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONML;false;toJSONObject;;;Argument[0];ReturnValue;taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out = JSONML.toJSONObject(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONML;false;toString;;;Argument[0];ReturnValue;taint;manual"
			String out = null;
			JSONObject in = (JSONObject)source();
			out = JSONML.toString(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONML;false;toString;;;Argument[0];ReturnValue;taint;manual"
			String out = null;
			JSONArray in = (JSONArray)source();
			out = JSONML.toString(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;JSONObject;(JSONObject,String[]);;Argument[0];Argument[this];taint;manual"
			JSONObject out = null;
			JSONObject in = (JSONObject)source();
			out = new JSONObject(in, (String[])null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;JSONObject;(JSONObject,String[]);;ArrayElement of Argument[1];Argument[this];taint;manual"
			JSONObject out = null;
			String[] in = (String[])newWithArrayElement(source());
			out = new JSONObject((JSONObject)null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;JSONObject;(JSONTokener);;Argument[0];Argument[this];taint;manual"
			JSONObject out = null;
			JSONTokener in = (JSONTokener)source();
			out = new JSONObject(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;JSONObject;(Map);;MapKey of Argument[0];Argument[this];taint;manual"
			JSONObject out = null;
			Map in = (Map)newWithMapKey(source());
			out = new JSONObject(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;JSONObject;(Map);;MapValue of Argument[0];Argument[this];taint;manual"
			JSONObject out = null;
			Map in = (Map)newWithMapValue(source());
			out = new JSONObject(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;JSONObject;(Object);;Argument[0];Argument[this];taint;manual"
			JSONObject out = null;
			Object in = (Object)source();
			out = new JSONObject(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;JSONObject;(Object,String[]);;Argument[0];Argument[this];taint;manual"
			JSONObject out = null;
			Object in = (Object)source();
			out = new JSONObject(in, (String[])null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;JSONObject;(Object,String[]);;ArrayElement of Argument[1];Argument[this];taint;manual"
			JSONObject out = null;
			String[] in = (String[])newWithArrayElement(source());
			out = new JSONObject((Object)null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;JSONObject;(String);;Argument[0];Argument[this];taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out = new JSONObject(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;JSONObject;(String,Locale);;Argument[0];Argument[this];taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out = new JSONObject(in, (Locale)null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;accumulate;;;Argument[this];ReturnValue;value;manual"
			JSONObject out = null;
			JSONObject in = (JSONObject)source();
			out = in.accumulate(null, null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;accumulate;;;Argument[0..1];Argument[this];taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out.accumulate(in, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;accumulate;;;Argument[0..1];Argument[this];taint;manual"
			JSONObject out = null;
			Object in = (Object)source();
			out.accumulate(null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;append;;;Argument[this];ReturnValue;value;manual"
			JSONObject out = null;
			JSONObject in = (JSONObject)source();
			out = in.append(null, null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;append;;;Argument[0..1];Argument[this];taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out.append(in, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;append;;;Argument[0..1];Argument[this];taint;manual"
			JSONObject out = null;
			Object in = (Object)source();
			out.append(null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;doubleToString;;;Argument[0];ReturnValue;taint;manual"
			String out = null;
			double in = (double)source();
			out = JSONObject.doubleToString(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;get;;;Argument[this];ReturnValue;taint;manual"
			Object out = null;
			JSONObject in = (JSONObject)source();
			out = in.get(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;getBigDecimal;;;Argument[this];ReturnValue;taint;manual"
			BigDecimal out = null;
			JSONObject in = (JSONObject)source();
			out = in.getBigDecimal(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;getBigInteger;;;Argument[this];ReturnValue;taint;manual"
			BigInteger out = null;
			JSONObject in = (JSONObject)source();
			out = in.getBigInteger(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;getBoolean;;;Argument[this];ReturnValue;taint;manual"
			boolean out = false;
			JSONObject in = (JSONObject)source();
			out = in.getBoolean(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;getDouble;;;Argument[this];ReturnValue;taint;manual"
			double out = 0.0;
			JSONObject in = (JSONObject)source();
			out = in.getDouble(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;getEnum;;;Argument[this];ReturnValue;taint;manual"
			Enum out = null;
			JSONObject in = (JSONObject)source();
			out = in.getEnum(null, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;getFloat;;;Argument[this];ReturnValue;taint;manual"
			float out = 0.0f;
			JSONObject in = (JSONObject)source();
			out = in.getFloat(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;getInt;;;Argument[this];ReturnValue;taint;manual"
			int out = 0;
			JSONObject in = (JSONObject)source();
			out = in.getInt(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;getJSONArray;;;Argument[this];ReturnValue;taint;manual"
			JSONArray out = null;
			JSONObject in = (JSONObject)source();
			out = in.getJSONArray(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;getJSONObject;;;Argument[this];ReturnValue;taint;manual"
			JSONObject out = null;
			JSONObject in = (JSONObject)source();
			out = in.getJSONObject(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;getLong;;;Argument[this];ReturnValue;taint;manual"
			long out = 0L;
			JSONObject in = (JSONObject)source();
			out = in.getLong(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;getNames;;;Argument[0];ArrayElement of ReturnValue;taint;manual"
			String[] out = null;
			Object in = (Object)source();
			out = JSONObject.getNames(in);
			sink(getArrayElement(out)); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;getNames;;;Argument[0];ArrayElement of ReturnValue;taint;manual"
			String[] out = null;
			JSONObject in = (JSONObject)source();
			out = JSONObject.getNames(in);
			sink(getArrayElement(out)); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;getNumber;;;Argument[this];ReturnValue;taint;manual"
			Number out = null;
			JSONObject in = (JSONObject)source();
			out = in.getNumber(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;getString;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			JSONObject in = (JSONObject)source();
			out = in.getString(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;increment;;;Argument[this];ReturnValue;value;manual"
			JSONObject out = null;
			JSONObject in = (JSONObject)source();
			out = in.increment(null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;increment;;;Argument[0];Argument[this];taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out.increment(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;keySet;;;Argument[this];Element of ReturnValue;taint;manual"
			Set out = null;
			JSONObject in = (JSONObject)source();
			out = in.keySet();
			sink(getElement(out)); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;keys;;;Argument[this];Element of ReturnValue;taint;manual"
			Iterator out = null;
			JSONObject in = (JSONObject)source();
			out = in.keys();
			sink(getElement(out)); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;names;;;Argument[this];ReturnValue;taint;manual"
			JSONArray out = null;
			JSONObject in = (JSONObject)source();
			out = in.names();
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;numberToString;;;Argument[0];ReturnValue;taint;manual"
			String out = null;
			Number in = (Number)source();
			out = JSONObject.numberToString(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;opt;;;Argument[this];ReturnValue;taint;manual"
			Object out = null;
			JSONObject in = (JSONObject)source();
			out = in.opt(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optBigDecimal;;;Argument[this];ReturnValue;taint;manual"
			BigDecimal out = null;
			JSONObject in = (JSONObject)source();
			out = in.optBigDecimal(null, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optBigDecimal;;;Argument[1];ReturnValue;value;manual"
			BigDecimal out = null;
			BigDecimal in = (BigDecimal)source();
			JSONObject instance = null;
			out = instance.optBigDecimal(null, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;optBigInteger;;;Argument[this];ReturnValue;taint;manual"
			BigInteger out = null;
			JSONObject in = (JSONObject)source();
			out = in.optBigInteger(null, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optBigInteger;;;Argument[1];ReturnValue;value;manual"
			BigInteger out = null;
			BigInteger in = (BigInteger)source();
			JSONObject instance = null;
			out = instance.optBigInteger(null, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;optBoolean;;;Argument[this];ReturnValue;taint;manual"
			boolean out = false;
			JSONObject in = (JSONObject)source();
			out = in.optBoolean(null, false);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optBoolean;;;Argument[this];ReturnValue;taint;manual"
			boolean out = false;
			JSONObject in = (JSONObject)source();
			out = in.optBoolean(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optBoolean;;;Argument[1];ReturnValue;value;manual"
			boolean out = false;
			boolean in = (boolean)source();
			JSONObject instance = null;
			out = instance.optBoolean(null, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;optDouble;;;Argument[this];ReturnValue;taint;manual"
			double out = 0.0;
			JSONObject in = (JSONObject)source();
			out = in.optDouble(null, 0.0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optDouble;;;Argument[this];ReturnValue;taint;manual"
			double out = 0.0;
			JSONObject in = (JSONObject)source();
			out = in.optDouble(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optDouble;;;Argument[1];ReturnValue;value;manual"
			double out = 0.0;
			double in = (double)source();
			JSONObject instance = null;
			out = instance.optDouble(null, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;optEnum;;;Argument[this];ReturnValue;taint;manual"
			Enum out = null;
			JSONObject in = (JSONObject)source();
			out = in.optEnum(null, null, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optEnum;;;Argument[this];ReturnValue;taint;manual"
			Enum out = null;
			JSONObject in = (JSONObject)source();
			out = in.optEnum(null, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optEnum;;;Argument[2];ReturnValue;value;manual"
			Enum out = null;
			Enum in = (Enum)source();
			JSONObject instance = null;
			out = instance.optEnum(null, null, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;optFloat;;;Argument[this];ReturnValue;taint;manual"
			float out = 0.0f;
			JSONObject in = (JSONObject)source();
			out = in.optFloat(null, 0.0f);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optFloat;;;Argument[this];ReturnValue;taint;manual"
			float out = 0.0f;
			JSONObject in = (JSONObject)source();
			out = in.optFloat(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optFloat;;;Argument[1];ReturnValue;value;manual"
			float out = 0.0f;
			float in = (float)source();
			JSONObject instance = null;
			out = instance.optFloat(null, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;optInt;;;Argument[this];ReturnValue;taint;manual"
			int out = 0;
			JSONObject in = (JSONObject)source();
			out = in.optInt(null, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optInt;;;Argument[this];ReturnValue;taint;manual"
			int out = 0;
			JSONObject in = (JSONObject)source();
			out = in.optInt(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optInt;;;Argument[1];ReturnValue;value;manual"
			int out = 0;
			int in = (int)source();
			JSONObject instance = null;
			out = instance.optInt(null, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;optJSONArray;;;Argument[this];ReturnValue;taint;manual"
			JSONArray out = null;
			JSONObject in = (JSONObject)source();
			out = in.optJSONArray(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optJSONObject;;;Argument[this];ReturnValue;taint;manual"
			JSONObject out = null;
			JSONObject in = (JSONObject)source();
			out = in.optJSONObject(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optLong;;;Argument[this];ReturnValue;taint;manual"
			long out = 0L;
			JSONObject in = (JSONObject)source();
			out = in.optLong(null, 0L);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optLong;;;Argument[this];ReturnValue;taint;manual"
			long out = 0L;
			JSONObject in = (JSONObject)source();
			out = in.optLong(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optLong;;;Argument[1];ReturnValue;value;manual"
			long out = 0L;
			long in = (long)source();
			JSONObject instance = null;
			out = instance.optLong(null, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;optNumber;;;Argument[this];ReturnValue;taint;manual"
			Number out = null;
			JSONObject in = (JSONObject)source();
			out = in.optNumber(null, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optNumber;;;Argument[this];ReturnValue;taint;manual"
			Number out = null;
			JSONObject in = (JSONObject)source();
			out = in.optNumber(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optNumber;;;Argument[1];ReturnValue;value;manual"
			Number out = null;
			Number in = (Number)source();
			JSONObject instance = null;
			out = instance.optNumber(null, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;optQuery;;;Argument[this];ReturnValue;taint;manual"
			Object out = null;
			JSONObject in = (JSONObject)source();
			out = in.optQuery((String)null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optQuery;;;Argument[this];ReturnValue;taint;manual"
			Object out = null;
			JSONObject in = (JSONObject)source();
			out = in.optQuery((JSONPointer)null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optString;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			JSONObject in = (JSONObject)source();
			out = in.optString(null, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optString;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			JSONObject in = (JSONObject)source();
			out = in.optString(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;optString;;;Argument[1];ReturnValue;value;manual"
			String out = null;
			String in = (String)source();
			JSONObject instance = null;
			out = instance.optString(null, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;put;(String,Collection);;Argument[0];Argument[this];taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out.put(in, (Collection)null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;put;(String,Collection);;Element of Argument[1];Argument[this];taint;manual"
			JSONObject out = null;
			Collection in = (Collection)newWithElement(source());
			out.put((String)null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;put;(String,Map);;Argument[0];Argument[this];taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out.put(in, (Map)null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;put;(String,Map);;MapKey of Argument[1];Argument[this];taint;manual"
			JSONObject out = null;
			Map in = (Map)newWithMapKey(source());
			out.put((String)null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;put;(String,Map);;MapValue of Argument[1];Argument[this];taint;manual"
			JSONObject out = null;
			Map in = (Map)newWithMapValue(source());
			out.put((String)null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;put;(String,Object);;Argument[0];Argument[this];taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out.put(in, (Object)null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;put;(String,Object);;Argument[1];Argument[this];taint;manual"
			JSONObject out = null;
			Object in = (Object)source();
			out.put((String)null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;put;(String,boolean);;Argument[0];Argument[this];taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out.put(in, false);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;put;(String,boolean);;Argument[1];Argument[this];taint;manual"
			JSONObject out = null;
			boolean in = (boolean)source();
			out.put((String)null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;put;(String,double);;Argument[0];Argument[this];taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out.put(in, 0.0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;put;(String,double);;Argument[1];Argument[this];taint;manual"
			JSONObject out = null;
			double in = (double)source();
			out.put((String)null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;put;(String,float);;Argument[0];Argument[this];taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out.put(in, 0.0f);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;put;(String,float);;Argument[1];Argument[this];taint;manual"
			JSONObject out = null;
			float in = (float)source();
			out.put((String)null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;put;(String,int);;Argument[0];Argument[this];taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out.put(in, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;put;(String,int);;Argument[1];Argument[this];taint;manual"
			JSONObject out = null;
			int in = (int)source();
			out.put((String)null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;put;(String,long);;Argument[0];Argument[this];taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out.put(in, 0L);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;put;(String,long);;Argument[1];Argument[this];taint;manual"
			JSONObject out = null;
			long in = (long)source();
			out.put((String)null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONObject out = null;
			JSONObject in = (JSONObject)source();
			out = in.put((String)null, false);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONObject out = null;
			JSONObject in = (JSONObject)source();
			out = in.put((String)null, 0L);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONObject out = null;
			JSONObject in = (JSONObject)source();
			out = in.put((String)null, 0.0f);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONObject out = null;
			JSONObject in = (JSONObject)source();
			out = in.put((String)null, 0.0);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONObject out = null;
			JSONObject in = (JSONObject)source();
			out = in.put((String)null, 0);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONObject out = null;
			JSONObject in = (JSONObject)source();
			out = in.put((String)null, (Object)null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONObject out = null;
			JSONObject in = (JSONObject)source();
			out = in.put((String)null, (Map)null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;put;;;Argument[this];ReturnValue;value;manual"
			JSONObject out = null;
			JSONObject in = (JSONObject)source();
			out = in.put((String)null, (Collection)null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;putOnce;;;Argument[this];ReturnValue;value;manual"
			JSONObject out = null;
			JSONObject in = (JSONObject)source();
			out = in.putOnce(null, null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;putOnce;;;Argument[0..1];Argument[this];taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out.putOnce(in, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;putOnce;;;Argument[0..1];Argument[this];taint;manual"
			JSONObject out = null;
			Object in = (Object)source();
			out.putOnce(null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;putOpt;;;Argument[this];ReturnValue;value;manual"
			JSONObject out = null;
			JSONObject in = (JSONObject)source();
			out = in.putOpt(null, null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;putOpt;;;Argument[0..1];Argument[this];taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out.putOpt(in, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;putOpt;;;Argument[0..1];Argument[this];taint;manual"
			JSONObject out = null;
			Object in = (Object)source();
			out.putOpt(null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;query;;;Argument[this];ReturnValue;taint;manual"
			Object out = null;
			JSONObject in = (JSONObject)source();
			out = in.query((String)null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;query;;;Argument[this];ReturnValue;taint;manual"
			Object out = null;
			JSONObject in = (JSONObject)source();
			out = in.query((JSONPointer)null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;quote;(String);;Argument[0];ReturnValue;taint;manual"
			String out = null;
			String in = (String)source();
			out = JSONObject.quote(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;quote;(String,Writer);;Argument[0];Argument[1];taint;manual"
			Writer out = null;
			String in = (String)source();
			JSONObject.quote(in, out);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;quote;(String,Writer);;Argument[1];ReturnValue;value;manual"
			Writer out = null;
			Writer in = (Writer)source();
			out = JSONObject.quote(null, in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;remove;;;Argument[this];ReturnValue;taint;manual"
			Object out = null;
			JSONObject in = (JSONObject)source();
			out = in.remove(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;stringToValue;;;Argument[0];ReturnValue;taint;manual"
			Object out = null;
			String in = (String)source();
			out = JSONObject.stringToValue(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;toJSONArray;;;Argument[this];ReturnValue;taint;manual"
			JSONArray out = null;
			JSONObject in = (JSONObject)source();
			out = in.toJSONArray(null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;toMap;;;Argument[this];MapKey of ReturnValue;taint;manual"
			Map out = null;
			JSONObject in = (JSONObject)source();
			out = in.toMap();
			sink(getMapKey(out)); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;toMap;;;Argument[this];MapValue of ReturnValue;taint;manual"
			Map out = null;
			JSONObject in = (JSONObject)source();
			out = in.toMap();
			sink(getMapValue(out)); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;toString;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			JSONObject in = (JSONObject)source();
			out = in.toString(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;toString;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			JSONObject in = (JSONObject)source();
			out = in.toString();
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;valueToString;;;Argument[0];ReturnValue;taint;manual"
			String out = null;
			Object in = (Object)source();
			out = JSONObject.valueToString(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;wrap;;;Argument[0];ReturnValue;taint;manual"
			Object out = null;
			Object in = (Object)source();
			out = JSONObject.wrap(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;write;;;Argument[this];Argument[0];taint;manual"
			Writer out = null;
			JSONObject in = (JSONObject)source();
			in.write(out, 0, 0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;write;;;Argument[this];Argument[0];taint;manual"
			Writer out = null;
			JSONObject in = (JSONObject)source();
			in.write(out);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONObject;false;write;;;Argument[0];ReturnValue;value;manual"
			Writer out = null;
			Writer in = (Writer)source();
			JSONObject instance = null;
			out = instance.write(in, 0, 0);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONObject;false;write;;;Argument[0];ReturnValue;value;manual"
			Writer out = null;
			Writer in = (Writer)source();
			JSONObject instance = null;
			out = instance.write(in);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONPointer$Builder;false;append;;;Argument[this];ReturnValue;value;manual"
			JSONPointer.Builder out = null;
			JSONPointer.Builder in = (JSONPointer.Builder)source();
			out = in.append(0);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONPointer$Builder;false;append;;;Argument[this];ReturnValue;value;manual"
			JSONPointer.Builder out = null;
			JSONPointer.Builder in = (JSONPointer.Builder)source();
			out = in.append((String)null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONPointer$Builder;false;append;;;Argument[0];Argument[this];taint;manual"
			JSONPointer.Builder out = null;
			int in = (int)source();
			out.append(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONPointer$Builder;false;append;;;Argument[0];Argument[this];taint;manual"
			JSONPointer.Builder out = null;
			String in = (String)source();
			out.append(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONPointer$Builder;false;build;;;Argument[this];ReturnValue;taint;manual"
			JSONPointer out = null;
			JSONPointer.Builder in = (JSONPointer.Builder)source();
			out = in.build();
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONPointer;false;JSONPointer;(List);;Element of Argument[0];Argument[this];taint;manual"
			JSONPointer out = null;
			List in = (List)newWithElement(source());
			out = new JSONPointer(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONPointer;false;JSONPointer;(String);;Argument[0];Argument[this];taint;manual"
			JSONPointer out = null;
			String in = (String)source();
			out = new JSONPointer(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONPointer;false;queryFrom;;;Argument[0];ReturnValue;taint;manual"
			Object out = null;
			Object in = (Object)source();
			JSONPointer instance = null;
			out = instance.queryFrom(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONPointer;false;toString;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			JSONPointer in = (JSONPointer)source();
			out = in.toString();
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONPointer;false;toURIFragment;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			JSONPointer in = (JSONPointer)source();
			out = in.toURIFragment();
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONString;true;toJSONString;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			JSONString in = (JSONString)source();
			out = in.toJSONString();
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONStringer;false;toString;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			JSONStringer in = (JSONStringer)source();
			out = in.toString();
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONTokener;true;JSONTokener;;;Argument[0];Argument[this];taint;manual"
			JSONTokener out = null;
			String in = (String)source();
			out = new JSONTokener(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONTokener;true;JSONTokener;;;Argument[0];Argument[this];taint;manual"
			JSONTokener out = null;
			Reader in = (Reader)source();
			out = new JSONTokener(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONTokener;true;JSONTokener;;;Argument[0];Argument[this];taint;manual"
			JSONTokener out = null;
			InputStream in = (InputStream)source();
			out = new JSONTokener(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONTokener;true;next;;;Argument[this];ReturnValue;taint;manual"
			char out = 'a';
			JSONTokener in = (JSONTokener)source();
			out = in.next();
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONTokener;true;next;;;Argument[this];ReturnValue;taint;manual"
			char out = 'a';
			JSONTokener in = (JSONTokener)source();
			out = in.next('a');
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONTokener;true;next;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			JSONTokener in = (JSONTokener)source();
			out = in.next(0);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONTokener;true;nextClean;;;Argument[this];ReturnValue;taint;manual"
			char out = 'a';
			JSONTokener in = (JSONTokener)source();
			out = in.nextClean();
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONTokener;true;nextString;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			JSONTokener in = (JSONTokener)source();
			out = in.nextString('a');
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONTokener;true;nextTo;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			JSONTokener in = (JSONTokener)source();
			out = in.nextTo((String)null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONTokener;true;nextTo;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			JSONTokener in = (JSONTokener)source();
			out = in.nextTo('a');
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONTokener;true;nextValue;;;Argument[this];ReturnValue;taint;manual"
			Object out = null;
			JSONTokener in = (JSONTokener)source();
			out = in.nextValue();
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONTokener;true;syntaxError;;;Argument[0..1];ReturnValue;taint;manual"
			JSONException out = null;
			Throwable in = (Throwable)source();
			JSONTokener instance = null;
			out = instance.syntaxError(null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONTokener;true;syntaxError;;;Argument[0..1];ReturnValue;taint;manual"
			JSONException out = null;
			String in = (String)source();
			JSONTokener instance = null;
			out = instance.syntaxError(in, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONTokener;true;syntaxError;;;Argument[0..1];ReturnValue;taint;manual"
			JSONException out = null;
			String in = (String)source();
			JSONTokener instance = null;
			out = instance.syntaxError(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONTokener;true;toString;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			JSONTokener in = (JSONTokener)source();
			out = in.toString();
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONWriter;true;array;;;Argument[this];ReturnValue;value;manual"
			JSONWriter out = null;
			JSONWriter in = (JSONWriter)source();
			out = in.array();
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONWriter;true;endArray;;;Argument[this];ReturnValue;value;manual"
			JSONWriter out = null;
			JSONWriter in = (JSONWriter)source();
			out = in.endArray();
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONWriter;true;endObject;;;Argument[this];ReturnValue;value;manual"
			JSONWriter out = null;
			JSONWriter in = (JSONWriter)source();
			out = in.endObject();
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONWriter;true;key;;;Argument[this];ReturnValue;value;manual"
			JSONWriter out = null;
			JSONWriter in = (JSONWriter)source();
			out = in.key(null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONWriter;true;key;;;Argument[0];Argument[this];taint;manual"
			JSONWriter out = null;
			String in = (String)source();
			out.key(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONWriter;true;object;;;Argument[this];ReturnValue;value;manual"
			JSONWriter out = null;
			JSONWriter in = (JSONWriter)source();
			out = in.object();
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONWriter;true;value;;;Argument[this];ReturnValue;value;manual"
			JSONWriter out = null;
			JSONWriter in = (JSONWriter)source();
			out = in.value(false);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONWriter;true;value;;;Argument[this];ReturnValue;value;manual"
			JSONWriter out = null;
			JSONWriter in = (JSONWriter)source();
			out = in.value(0L);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONWriter;true;value;;;Argument[this];ReturnValue;value;manual"
			JSONWriter out = null;
			JSONWriter in = (JSONWriter)source();
			out = in.value(0.0);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONWriter;true;value;;;Argument[this];ReturnValue;value;manual"
			JSONWriter out = null;
			JSONWriter in = (JSONWriter)source();
			out = in.value((Object)null);
			sink(out); // $ hasValueFlow
		}
		{
			// "org.json;JSONWriter;true;value;;;Argument[0];Argument[this];taint;manual"
			JSONWriter out = null;
			long in = (long)source();
			out.value(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONWriter;true;value;;;Argument[0];Argument[this];taint;manual"
			JSONWriter out = null;
			double in = (double)source();
			out.value(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONWriter;true;value;;;Argument[0];Argument[this];taint;manual"
			JSONWriter out = null;
			boolean in = (boolean)source();
			out.value(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONWriter;true;value;;;Argument[0];Argument[this];taint;manual"
			JSONWriter out = null;
			Object in = (Object)source();
			out.value(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;JSONWriter;true;valueToString;;;Argument[0];ReturnValue;taint;manual"
			String out = null;
			Object in = (Object)source();
			out = JSONWriter.valueToString(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;Property;false;toJSONObject;;;MapKey of Argument[0];ReturnValue;taint;manual"
			JSONObject out = null;
			Properties in = (Properties)newWithMapKey(source());
			out = Property.toJSONObject(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;Property;false;toJSONObject;;;MapValue of Argument[0];ReturnValue;taint;manual"
			JSONObject out = null;
			Properties in = (Properties)newWithMapValue(source());
			out = Property.toJSONObject(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;Property;false;toProperties;;;Argument[0];MapKey of ReturnValue;taint;manual"
			Properties out = null;
			JSONObject in = (JSONObject)source();
			out = Property.toProperties(in);
			sink(getMapKey(out)); // $ hasTaintFlow
		}
		{
			// "org.json;Property;false;toProperties;;;Argument[0];MapValue of ReturnValue;taint;manual"
			Properties out = null;
			JSONObject in = (JSONObject)source();
			out = Property.toProperties(in);
			sink(getMapValue(out)); // $ hasTaintFlow
		}
		{
			// "org.json;XML;false;escape;;;Argument[0];ReturnValue;taint;manual"
			String out = null;
			String in = (String)source();
			out = XML.escape(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XML;false;stringToValue;;;Argument[0];ReturnValue;taint;manual"
			Object out = null;
			String in = (String)source();
			out = XML.stringToValue(in, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XML;false;stringToValue;;;Argument[0];ReturnValue;taint;manual"
			Object out = null;
			String in = (String)source();
			out = XML.stringToValue(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XML;false;toJSONObject;;;Argument[0];ReturnValue;taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out = XML.toJSONObject(in, false);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XML;false;toJSONObject;;;Argument[0];ReturnValue;taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out = XML.toJSONObject(in, (XMLParserConfiguration)null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XML;false;toJSONObject;;;Argument[0];ReturnValue;taint;manual"
			JSONObject out = null;
			String in = (String)source();
			out = XML.toJSONObject(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XML;false;toJSONObject;;;Argument[0];ReturnValue;taint;manual"
			JSONObject out = null;
			Reader in = (Reader)source();
			out = XML.toJSONObject(in, false);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XML;false;toJSONObject;;;Argument[0];ReturnValue;taint;manual"
			JSONObject out = null;
			Reader in = (Reader)source();
			out = XML.toJSONObject(in, (XMLParserConfiguration)null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XML;false;toJSONObject;;;Argument[0];ReturnValue;taint;manual"
			JSONObject out = null;
			Reader in = (Reader)source();
			out = XML.toJSONObject(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XML;false;toString;;;Argument[0..1];ReturnValue;taint;manual"
			String out = null;
			String in = (String)source();
			out = XML.toString(null, in, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XML;false;toString;;;Argument[0..1];ReturnValue;taint;manual"
			String out = null;
			String in = (String)source();
			out = XML.toString(null, in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XML;false;toString;;;Argument[0..1];ReturnValue;taint;manual"
			String out = null;
			Object in = (Object)source();
			out = XML.toString(in, null, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XML;false;toString;;;Argument[0..1];ReturnValue;taint;manual"
			String out = null;
			Object in = (Object)source();
			out = XML.toString(in, null);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XML;false;toString;;;Argument[0..1];ReturnValue;taint;manual"
			String out = null;
			Object in = (Object)source();
			out = XML.toString(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XML;false;unescape;;;Argument[0];ReturnValue;taint;manual"
			String out = null;
			String in = (String)source();
			out = XML.unescape(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XMLTokener;false;XMLTokener;;;Argument[0];Argument[this];taint;manual"
			XMLTokener out = null;
			String in = (String)source();
			out = new XMLTokener(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XMLTokener;false;XMLTokener;;;Argument[0];Argument[this];taint;manual"
			XMLTokener out = null;
			Reader in = (Reader)source();
			out = new XMLTokener(in);
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XMLTokener;false;nextCDATA;;;Argument[this];ReturnValue;taint;manual"
			String out = null;
			XMLTokener in = (XMLTokener)source();
			out = in.nextCDATA();
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XMLTokener;false;nextContent;;;Argument[this];ReturnValue;taint;manual"
			Object out = null;
			XMLTokener in = (XMLTokener)source();
			out = in.nextContent();
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XMLTokener;false;nextEntity;;;Argument[this];ReturnValue;taint;manual"
			Object out = null;
			XMLTokener in = (XMLTokener)source();
			out = in.nextEntity('a');
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XMLTokener;false;nextMeta;;;Argument[this];ReturnValue;taint;manual"
			Object out = null;
			XMLTokener in = (XMLTokener)source();
			out = in.nextMeta();
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XMLTokener;false;nextToken;;;Argument[this];ReturnValue;taint;manual"
			Object out = null;
			XMLTokener in = (XMLTokener)source();
			out = in.nextToken();
			sink(out); // $ hasTaintFlow
		}
		{
			// "org.json;XMLXsiTypeConverter;true;convert;;;Argument[0];ReturnValue;taint;manual"
			Object out = null;
			String in = (String)source();
			XMLXsiTypeConverter instance = null;
			out = instance.convert(in);
			sink(out); // $ hasTaintFlow
		}

	}

}